package MD5编码解码;
/*(1)先定义一个md5类的对象用于调用编码方法
    再定义一个byte数组用于储存md5编号的16进制数组成的数组
    再用一个字符串类型来接收 Base64编译的数据
    md5最后会返回该字符串类型

  (2)在主类中定义一个md5编号的字符串编码---savePassword
  (3)创建一个login方法来实现登录(String password)
  用savePassword.equals(password)来比较主类中定义的字符串编码
  如果一致则返回true , 如果不一致则返回false

 (4)主类中用System.out.println(login(password:""))来验证方法



 */



import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.util.Base64;

public class md5 {
    private static String savePassword = "DC8BP+OWghRfh65LF1viKQ==";//储存的密文
    public static void main(String[] args) {
        System.out.println(login("admin1212"));

    }
   private static boolean login(String password){
        if(savePassword.equals(md5(password))){
            return true ;
        }else{
            return false ;
        }
   }


    private static String md5(String password){
        try {
        MessageDigest md5 = MessageDigest.getInstance("md5");
        byte[] bytes = md5.digest(password.getBytes("UTF-8"));
        //  String mdstr = new String(bytes);
        //  System.out.printf(mdstr);
        String str = Base64.getEncoder().encodeToString(bytes);
        return str ;
    } catch (NoSuchAlgorithmException e) {
        e.printStackTrace();
    } catch (UnsupportedEncodingException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    }
        return null ;
}
}